package com.taijihuabao.modules.enums.optenums.approval;

/**
 * 审批结果枚举
 *
 * @author Tu
 * @date 2022/1/5 13:55
 */
public enum ApprovalStatusEnum {

    /**
     * 审批意见通过
     */
    ApprovePass("1", "审批通过"),
    /**
     * 审批意见驳回
     */
    ApproveReject("2", "审批驳回"),
    /**
     * 审批意见未通过
     */
    ApproveRefuse("3", "审批未通过"),
    /**
     * 审批状态进行中
     */
    STATE_ING("ing", "审批状态进行中"),
    /**
     * 审批状态通过
     */
    STATE_PASS("pass", "审批状态通过"),
    /**
     * 审批状态驳回
     */
    STATE_REJECT("reject", "审批状态驳回"),
    /**
     * 审批状态拒绝
     */
    STATE_REFUSE("refuse", "审批状态拒绝");

    private final String code;
    private final String message;

    ApprovalStatusEnum(String code, String message) {
        this.code = code;
        this.message = message;
    }

    /**
     * 根据状态code获取枚举名称
     *
     * @return
     */
    public static String getMessageByCode(String code) {
        for (ApprovalStatusEnum status : ApprovalStatusEnum.values()) {
            if (status.getCode().equals(code)) {
                return status.message;
            }
        }
        return null;
    }

    /**
     * 根据状态code获取枚举值
     *
     * @return
     */
    public static ApprovalStatusEnum getByCode(String code) {
        for (ApprovalStatusEnum status : ApprovalStatusEnum.values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        return null;
    }

    public String getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }

}
